package hot100;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

public class Solution958 {
    public boolean isCompleteTree(TreeNode root) {
        List<ANode> nodes = new ArrayList<>();
        nodes.add(new ANode(root, 1));
        int i = 0;
        while (i < nodes.size()) {
            ANode node = nodes.get(i++);
            if (node.node != null) {
                nodes.add(new ANode(node.node.left, node.index * 2));
                nodes.add(new ANode(node.node.right, node.index * 2 + 1));
            }
        }
        return nodes.get(i - 1).index == nodes.size();
    }
    class ANode {
        TreeNode node;
        int index;
        ANode(TreeNode node, int index) {
            this.node = node;
            this.index = index;
        }
    }
}
